//Controlleur de la page de Login
window.LoginView = Backbone.View.extend({

    id : 'loginView',

    initialize:function () {
		this.render();
    },

    render:function () {
        console.log($(this.el));
        $(this.el).html(this.template());
        return this;
    },

	events : {
        'click #login'   : 'login',
        'click #linkadduser' : 'linkAddUser'
	},

    login : function(e) {
        e.preventDefault();
        var self = this;
        var username = $('#username').val();
        var password = $('#password').val();

         //TODO Vérifié username/login
        $.ajax({
            type    : 'POST',
            url     : '/login',
            data    : {
                        'username' : username,
                        'password' : password
                      },
            success : function(data)
            {
                if(data._id)
                {
                    router.navigate('home', true);
                }
                else
                {
                    console.log("La validation Server à echoué");
                    self.resetViewErrorMessage();

                    //TODO Réfléchir à récupérer le selector proprement
                    for (var key in data) {
                        utils.displayValidationErrors(self, key, data[key], 'name');
                    }
                }
            },
            error   : function(error)
            {
                console.log(error);
            }
        });
    },

    linkAddUser : function()
    {
        //On supprimes les message d'erreurs
        this.resetViewErrorMessage();

        //On supprime les handlers des events
        this.undelegateEvents();
    },


    //TODO Trouvé un moyen de définir proprement le selector
    resetViewErrorMessage : function()
    {
        var self = this;
        this.$el.find('input').each(function()
        {
            utils.removeValidationError(self, $(this).attr("name") , "name");
        });
    },

    error : function(model, error) {
        return this;
    }

});